#ifndef CITY_TREE_H
#define CITY_TREE_H
#include <stdbool.h>

typedef struct AVLNode {
    int cityNumber;
    struct AVLNode* left;
    struct AVLNode* right;
    int height;
} AVLNode;

typedef struct AVLTree {
    AVLNode* root;
} AVLTree;

// Function declarations
AVLTree* createAVLTree();
AVLNode* insertCity(AVLTree* tree, int cityNumber);
void deleteCity(AVLTree* tree, int cityNumber);
void levelOrderTraversal(AVLTree* tree);
void destroyAVLTree(AVLTree* tree);

//front
bool handleUserChoice(AVLTree* tree);

#endif // CITY_TREE_H
